The invention relates to providing communications services, such as telephony services, over a packet-based data network.
Data networks are widely used to link various types of nodes, such as personal computers, servers, gateways, network telephones, and so forth. Networks may include private networks, such as local area networks and wide area networks, and public networks, such as the Internet. The increased availability of such data networks has improved accessibility among nodes coupled to the data networks. Popular forms of communications across such data networks include electronic mail, file transfer, web browsing, and other exchanges of digital data.
With the increased capacity and reliability of data networks, voice and multimedia communications over data networks have become possible. Such forms of communications include telephone calls over the data networks, video conferencing, and distribution of multimedia data (such as by multicast). Voice communications over data networks are unlike voice communications in a conventional public switched telephone network (PSTN), which provides users with dedicated, end-to-end circuit connections for the duration of each call. Communications over data networks, such as IP (Internet Protocol) networks, are performed using packets or datagrams that are sent in bursts from a source to one or more destination nodes. Voice and multimedia data sent over a data network typically share the network bandwidth with conventional non-voice data (e.g., data associated with electronic mail, file transfer, web access, and other traffic).
Various standards have been proposed for voice and multimedia communications over data networks. For example, a multimedia data and control architecture has been developed by the Internet Engineering Task Force (IETF). The protocols that are part of the IETF multimedia data and control architecture include the Resource Reservation Protocol (RSVP) for reserving network resources; the RealTime Transport Protocol (RTP) for transporting real-time data and providing quality of service (QoS) feedback; the Real-Time Streaming Protocol (RTSP) for controlling delivery of streaming media; the Session Announcement Protocol (SAP) for advertising multimedia sessions by multicast; the Session Description Protocol (SDP) for describing multimedia sessions; and the Session Initiation Protocol (SIP), which establishes, maintains, and terminates multimedia sessions or calls.
In a communications system that provides for voice or other like communications, various types of services may need to be defined to process and respond to call requests. One mechanism that has been proposed for implementing telephony services is the Call Processing Language (CPL), as described in an Internet Engineering Task Force (IETF) Internet Draft, entitled xe2x80x9cCPL: A Language for User Control of Internet Telephony Services,xe2x80x9d dated February 1999. However, conventional mechanisms for creating and implementing telephony services may have limited capabilities and features and thus may not offer the desired flexibility and robustness for implementing such services. More advanced services may be created with general programming languages such as C++ or Java, but they do not offer ease of use or implementation. Thus, a need exists for a method and apparatus to more efficiently create and implement communications services.
In general, according to one embodiment, a method of performing telephony services in a communications system having a network includes providing a plurality of script modules stored in one or more storage media and providing at least one scripting engine capable of accessing the script modules. One of the script modules may be executed by the at least one scripting engine in response to a request to establish a telephony session. One or more requests may be sent to nodes coupled to the network to perform actions specified in the executed script module.
Some embodiments of the invention may have one or more of the following advantages. Script modules defined according to a telephony scripting language make it more convenient to implement telephony services. In addition, the ability to implement a larger range of services may be accomplished by employing a scripting language having increased numbers of elements such as triggers and actions.